package message;

import java.io.File;
import java.util.logging.Level;
import java.util.logging.Logger;

import serveur.MainServer;

public class MessageDeleteFolder extends Message {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private static final Logger logger = Logger.getLogger(MainServer.class.getName());
	String m_sFolder;

	public MessageDeleteFolder(String sFolder)
	{
		m_iMessageId = Message.DeleteFolderId;
		m_sMessageName = Message.sDeleteFolderName;
		m_sFolder = sFolder;
	}
	
	public	boolean execute() {
		boolean bRet = false;
		// Enregistre le repertoire a supprimer
		String tmpPath = m_sCurrentFolder + File.separator + m_sFolder;
		File folder = new File(tmpPath);
		// Test si le fichier existe
		if (folder.exists()) {
			// si c'est un fichier
			if (folder.isFile()){
				m_bResultatExecution = folder.delete();
				m_sResultatExecution ="Execution réussie : suppression du fichier '"+folder.getName()+"'";
				logger.log(Level.INFO, "Execution de la commande RMDIR : le fichier "+folder.getName()+" est effacé");
				bRet = true;	
			}
			// si c'est un dossier
			else if (folder.isDirectory()){
				m_bResultatExecution = folder.delete();
				if (m_bResultatExecution){
					m_sResultatExecution ="Execution réussie : suppression du repertoire '"+folder.getName()+"'";
					logger.log(Level.INFO, "Execution de la commande RMDIR : le repertoire "+folder.getName()+" est effacé");
					bRet = true;
				} else {
					m_sResultatExecution ="Execution échouée : impossible de supprimer le repertoire '"+folder.getName()+"' : repertoire non vide";
					logger.log(Level.INFO, "Execution de la commande RMDIR : Suppression du repertoire "+folder.getName()+" impossible");
					bRet = true;	
				}
			}			
		} else {
			logger.log(Level.WARNING, "RMDIR FAILED - Aucun fichier ou repertoire de ce nom");
			m_sResultatExecution ="Execution réussie : Aucun fichier ou repertoire de ce nom";
		}
		return bRet;
	}

}
